//
//   Licensed to the Apache Software Foundation (ASF) under one or more
//   contributor license agreements.  See the NOTICE file distributed with
//   this work for additional information regarding copyright ownership.
//   The ASF licenses this file to You under the Apache License, Version 2.0
//   (the "License"); you may not use this file except in compliance with
//   the License.  You may obtain a copy of the License at
//  
//       http://www.apache.org/licenses/LICENSE-2.0
//  
//   Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.
//
using System;
using System.Collections.Generic;
using System.Text;

namespace org.apache.solr.SolrSharp.Query.Parameters
{
    /// <summary>
    /// Specialized QueryParameter object that constructs a logical
    /// Lucene-formatted query, similar to .Net String.StartsWith()
    /// </summary>
    public class StartsWithQueryParameter : QueryParameter
    {
        /// <summary>
        /// Constructor that accepts a solr index fieldname and value
        /// to be used for this query
        /// </summary>
        /// <param name="field"></param>
        /// <param name="value"></param>
        public StartsWithQueryParameter(string field, string value)
            : base(field, value)
        {
        }

        /// <summary>
        /// Renders a syntactically suitable Lucene "starts with" query
        /// </summary>
        /// <returns>string</returns>
        public override string ToString()
        {
            string _value = this.Value.Trim();
            return this.Field + ":" + _value + (!_value.EndsWith("*") ? "*" : "");
        }

    }
}
